๐ฟ ๋ธ๋์น ๊ด๋ฆฌ ์ ๋ต (Branch Management Guide)
NOTE
๋ธ๋์น ๋ค์ด๋ฐ ์ฒด๊ณ, ์์ ํ๋ฆ, MR ์์ฑ ๊ฐ์ด๋๋ฅผ ์ ๋ฆฌํ Git ๋ธ๋์น ์ ๋ต ๋ฌธ์.
๋ณธ ํ๋ก์ ํธ์ ํจ์จ์ ์ธ ํ์ ๊ณผ ์ฝ๋ ํ์ง ๊ด๋ฆฌ๋ฅผ ์ํด ์๋์ ๋ธ๋์น ์ ๋ต์ ์ค์ํฉ๋๋ค.
๐ ๊ฐ์ด๋ ๋ด์ฉ
1. ๋ธ๋์น ์ฒด๊ณ (Naming Convention)
๋ธ๋์น๋ ๋ชฉ์ ์ ๋ฐ๋ผ ์ธ ๊ฐ์ง ๊ณ์ธต์ผ๋ก ๊ตฌ๋ถํ์ฌ ์ด์ํฉ๋๋ค.
| ๋ถ๋ฅ | ๋ธ๋์น ํ์ | ์ค๋ช |
|---|---|---|
| ์ด์ ๋ธ๋์น | main | ์ต์ข ๋ฐฐํฌ์ฉ ์ต์์ ๋ธ๋์น (์ง์ Push ๋ถ๊ฐ) |
| ํ๋ก์ ํธ ์์ | [ํ๋ก์ ํธ๋ช
]/main | ํ๋ก์ ํธ๋ณ ๊ธฐ์ค ๋ธ๋์น (main์์ ํ์) |
| ํ๋ก์ ํธ ๊ฐ๋ฐ | [ํ๋ก์ ํธ๋ช
]/feature/[์์
๋ช
] | ๊ธฐ๋ฅ ๊ฐ๋ฐ, ๋ฒ๊ทธ ์์ ๋ฑ ์ผ๋ฐ ์์
([ํ๋ก์ ํธ๋ช
]/main ํ์) |
| SI ๋ฆฌํฉํ ๋ง | feature/[์์
๋ช
] | SI ๋ฆฌํฉํ ๋ง ์ ์ฉ ๋ ๋ฆฝ ์์ ๋ธ๋์น |
2. ์์ ํ๋ฆ (Workflow)
2.1 ๋ธ๋์น ์์ฑ ๊ท์น
์๋ก์ด ์์ ์ ์์ํ ๋๋ ์๋์ ๋ช ๋ช ๊ท์น์ ์ค์ํ์ฌ ์์ฑํฉ๋๋ค.
ํ์:
[prefix]-[์์ ๋ด์ฉ]_[์์ ์]_[๋ ์ง]
- ์ผ๋ฐ ์์
์์:
git checkout -b project-a/feature/add-bank_dev01_260219 - SI ๋ฆฌํฉํ ๋ง ์์:
git checkout -b feature/perf-transInfo_dev01_260219
[ Prefix ํ์ฉ ๊ฐ์ด๋ ]
| Prefix | ์ค๋ช |
|---|---|
add | ์๋ก์ด ๊ธฐ๋ฅ ์ถ๊ฐ |
fix | ๋ฒ๊ทธ ๋ฐ ์ค๋ฅ ์์ |
refactor | ์ฝ๋ ๊ตฌ์กฐ ๊ฐ์ (๊ธฐ๋ฅ ๋ณํ ์์) |
perf | ์ฟผ๋ฆฌ ํ๋ ๋ฐ ์ฑ๋ฅ ์ต์ ํ |
remove | ํ์ผ ๋ฐ ์ฝ๋ ์ญ์ |
2.2 ์ฝ๋ ๋ฐ์ ๋ฐ ๋จธ์ง (Merge)
main์ง์ Push ๊ธ์ง: ๋ชจ๋ ์ฝ๋๋ **Merge Request(MR)**๋ฅผ ํตํด์๋ง ๋ฐ์ํ ์ ์์ต๋๋ค.- ์ต์ ์ํ ์ ์ง: ๋ธ๋์น ์์ฑ ์ ํญ์ ์์ ๋ธ๋์น์์
pull์ ๋ฐ์ ์ต์ ์ํ๋ฅผ ์ ์งํฉ๋๋ค.
2.3 ๋ธ๋์น ๊ด๋ฆฌ ์์น
- ๊ธฐ๋ฅ ๋จ์ ์์ฑ: ํ๋์ ๋ธ๋์น์์๋ ํ๋์ ๊ธฐ๋ฅ(๋๋ ์ด์)๋ง ์ฒ๋ฆฌํ๋ ๊ฒ์ ์์น์ผ๋ก ํฉ๋๋ค.
- ๋จ์ ์ปค๋ฐ: ํตํฉํ
์คํธ ์์ ๋ฑ ์์ ๋ฒ์์ ์์
์์๋
fix-test๋ฑ์ผ๋ก ๋ช ํํ ๊ตฌ๋ถํ์ฌ ์ปค๋ฐํฉ๋๋ค. - ๋ฐ์ ํ ์ฆ์ ์ญ์ : MR์ด ์๋ฃ๋ ๋ธ๋์น๋ ์ฆ์ ์ญ์ ํฉ๋๋ค. (๋ฏธ์ญ์ ์ 3๊ฐ์ ์ฃผ๊ธฐ ์ ๊ธฐ ์ญ์ )
3. Merge Request ์์ฑ ๊ฐ์ด๋
๋ชจ๋ MR์ ํ์ ๊ฐ์ ์ํํ ๋ฆฌ๋ทฐ๋ฅผ ์ํด ์๋ ์์์ ์ค์ํ์ฌ ์์ฑํด ์ฃผ์ธ์.
3.1 ์ฃผ์ ์์ฑ ํญ๋ชฉ
- ์์ ๋ฐฐ๊ฒฝ: ์์ ์ ์ํํ๊ฒ ๋ ์ด์ ๋ ๊ธฐํ ์๋ (์: ์ฟผ๋ฆฌ ์๋ ๊ฐ์ , SI ์์ฒญ ๋ฐ์ ๋ฑ)
- ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ: ์ฝ๋ ์์ค์์์ ์์ ํต์ฌ ๋ด์ญ ์์ฝ (์: ์ธ๋ฑ์ค ์ถ๊ฐ, ์กฐ์ธ ๋ฐฉ์ ๋ณ๊ฒฝ ๋ฑ)
- ํ
์คํธ ๊ฒฐ๊ณผ: ์ ์ ์๋ ํ์ธ ๊ฒฐ๊ณผ (์:
./gradlew build์ฑ๊ณต ์ฌ๋ถ, ๊ฒฐ๊ณผ ์คํฌ๋ฆฐ์ท ๋ฑ) - ๊ด๋ จ ์ด์: ์ฐ๊ด๋ ์ด์ ๋ฒํธ (์:
#123)
3.2 ๋จธ์ง ์ต์ (Merge Options) ์ค์
MR ์์ฑ ํ๋ฉด ํ๋จ์์ ์๋ ์ต์ ์ ํ์ธํด ์ฃผ์ธ์.
| ์ต์ (Options) | ์ค๋ช | ํ์ ์ฌ๋ถ |
|---|---|---|
| Squash commitsโฆ | ์ฌ๋ฌ ๊ฐ์ ์ปค๋ฐ์ ํ๋์ ๊น๋ํ ์ปค๋ฐ์ผ๋ก ํฉ์ณ์ ๋จธ์งํฉ๋๋ค. | โ ํ์ |
| Delete source branchโฆ | ๋จธ์ง ์๋ฃ ํ ์์ ๋ธ๋์น๋ฅผ ์๊ฒฉ ์ ์ฅ์์์ ์๋ ์ญ์ ํฉ๋๋ค. | โ ๏ธ ๊ถ์ฅ |
๐ก ์์ฑ ํ ๋ฐ ์ฃผ์์ฌํญ
- ์ฟผ๋ฆฌ ํ๋ ์: ์ฑ๋ฅ ๊ฐ์ ์์น(
2.0s -> 0.2s)๋ ์คํ ๊ณํ(Explain Plan) ๋น๊ต ๊ฒฐ๊ณผ๋ฅผ ์ฒจ๋ถํด ์ฃผ์ธ์. - ์ปค๋ฐ ๊ด๋ฆฌ: Squash ๋จธ์ง ์, ์ต์ข
์ปค๋ฐ ๋ฉ์์ง๋
feat: [๊ฒฐ์ ] PG์ฌ ์ฐ๋๊ณผ ๊ฐ์ด ๋ช ํํ ์ ๋ชฉ์ผ๋ก ์์ ๋ฐ๋๋๋ค. - ์์ ์ต์ํ: ๋ฆฌ๋ทฐ ํจ์จ์ ์ํด ์์ ๋จ์๋ ๊ฐ๊ธ์ ์๊ฒ ์ ์งํฉ๋๋ค.
๊ด๋ จ ๋ฌธ์
- (Git) COMMIT ์ปจ๋ฒค์ ๊ฐ์ด๋ - ํต์ฌ ๊ฐ๋ ๋ฐ ํน์ง ์ ๋ฆฌ โ ๊ฐ์ ํ์ฌ Git ์ํฌํ๋ก์์ ๋ธ๋์น ์ ๋ต๊ณผ ์ง์ ์ด๋ฃจ๋ ์ปค๋ฐ ๋ฉ์์ง ์์ฑ ๊ท์น
- (Git) ์คํ์์ค ๊ธฐ์ฌ ๋ฐฉ๋ฒ ๋ฐ ์์ โ ์ด ํ์ฌ GitLab ๋ธ๋์น ์ ๋ต์ ์คํ์์ค GitHub fork ์ํฌํ๋ก์ ๋๋น์์ผ ์ค๋ช ํ๋ ๋ ธํธ